﻿Create Database QuanLyBanHang
Go
-- Phan I: DDL
-- Cau 1
Create Table KHACHHANG(
	MAKH	char(4)		Constraint PK_MAKH	Primary Key,
	HOTEN	varchar(40),
	DCHI	varchar(50),
	SODT	varchar(20),
	NGSINH	smalldatetime,
	DOANHSO	money,
	NGDK		smalldatetime
	
)

GO
Create Table NHANVIEN(
	MANV	char(4)		Constraint PK_MANV	Primary Key,
	HOTEN	varchar(40),
	SODT	varchar(20),
	NGVL	smalldatetime
)
GO
Create Table SANPHAM(
	MASP	char(4)		Constraint PK_MASP	Primary Key,
	TENSP	varchar(40),
	DVT		varchar(20),
	NUOCSX	varchar(40),
	GIA		money
)
GO
Create Table HOADON(
	SOHD	int			Constraint PK_SOHD	Primary Key,
	NGHD	smalldatetime,
	MAKH	char(4)	,
	MANV	char(4)	,
	TRIGIA	money,
)
GO
Create Table CTHD(
	SOHD	int	,
	MASP	char(4),
	SL		int,
	Constraint PK_SOHD_MASP	Primary Key(SOHD,MASP)
)
-- Constraint FK
Alter table HOADON	 add Constraint FK_MAKH		Foreign Key(MAKH) References KHACHHANG(MAKH)
Alter table HOADON	 add Constraint FK_MANV		Foreign Key(MANV) References NHANVIEN(MANV)
Alter table CTHD	 add Constraint FK_SOHD		Foreign Key(SOHD) References HOADON(SOHD)
Alter table CTHD	 add constraint FK_MASP		Foreign Key(MASP) references SANPHAM(MASP)


alter table HOADOn drop constraint FK_MAKH
-- Cau 2
Alter table SANPHAM Add GHICHU	varchar(20)
-- Cau 3
Alter table KHACHHANG	Add LOAIKH	tinyint
-- Cau 4
Alter table SANPHAM Alter Column GHICHU varchar(100)
-- Cau 5
ALter table	SANPHAM Drop Column GHICHU
-- Cau 6
Alter Table KHACHHANG Alter Column LOAIKH varchar(20)
-- Cau 7
Alter Table SANPHAM Add Constraint C_DVT Check(DVT in('Cay','Hop','Cai','Quyen','Chuc'))
-- Cau 8
Alter Table SANPHAM Add Constraint C_TRIGIA	Check(GIA >= 500)
-- Cau 9
Alter Table CTHD Add Constraint C_SL Check(SL >= 1)
-- Cau 10
SET Dateformat 'dmy' -- Chon cau truc ngay thang nam mac dinh

Alter Table KHACHHANG Add Constraint C_NDK Check(NGDK >= NGSinh)

Delete from KHACHHANG
Delete from NHANVIEN
Delete from SANPHAM
Delete from HOADON
Delete from CTHD



-- KHACHHANG
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH01','Nguyen Van A','731 Tran Hung Dao,Q5,TPHCM'     ,'08823451'  ,'22/10/1960',13060000,'22/7/2006')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH02','Tran Ngoc Han','23/5 Nguyen Trai,Q5,TPHCM'     ,'0908256478','3/4/1974'  ,280000  ,'30/7/2006')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH03','Tran Ngoc Linh','45 Nguyen Canh Chan,Q1,TPHCM' ,'0938776266','12/6/1980',3860000,'5/8/2006')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH04','Tran Minh Long','50/34 Le Dai Hanh,Q10,TPHCM'  ,'0917325476','9/3/1965',250000,'2/10/2006')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH05','Le Nhat Minh','34 Truong Dinh,Q3,TPHCM'        ,'08246108','10/3/1950',21000,'28/10/2006')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH06','Le Hoai Thuong','227 Nguyen Van Cu,Q5,TPHCM'   ,'08631738','31/12/1981',915000,'24/11/2006')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH07','Nguyen Van Tam','32/3 Tran Binh Trong,Q5,TPHCM','0916783565','6/4/1971',12500,'1/12/2006')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH08','Phan Thi Thanh','45/2 An Duong Vuong,Q5,TPHCM' ,'0938435756','10/1/1971',365000,'13/12/2006')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH09','Le Ha Vinh','873 Le Hong Phong,Q5,TPHCM'       ,'086547636','3/9/1979',70000,'14/1/2007')
insert into KHACHHANG (MAKH,HOTEN,DCHI,SODT,NGSINH,DOANHSO,NGDK)
values('KH10','Ha Duy Lap','34/34B Nguyen Trai,Q1,TPHCM'      ,'08768904','2/5/1983',67500,'16/1/2007')

-- NHANVIEN
insert into NHANVIEN values('NV01','Nguyen Nhu Nhut'      ,'0927345678','13/4/2006')
insert into NHANVIEN values('NV02','Le Thi Phi Yen'       ,'0987567390','21/4/2006')
insert into NHANVIEN values('NV03','Nguyen Van B'      ,'0997047382','27/4/2006')
insert into NHANVIEN values('NV04','Ngo Thanh Tuan'       ,'0913758498','24/6/2006')
insert into NHANVIEN values('NV05','Nguyen Thi Truc Thanh','0918590387','20/7/2006')
-- SANPHAM
insert into SANPHAM values('BC01','But chi'          ,'cay'  ,'Singapore' ,3000)
insert into SANPHAM values('BC02','But chi'          ,'cay'  ,'Singapore' ,5000)
insert into SANPHAM values('BC03','But chi'          ,'cay'  ,'Viet Nam'  ,3500)
insert into SANPHAM values('BC04','But chi'          ,'hop'  ,'Viet Nam'  ,30000)
insert into SANPHAM values('BB01','But bi'           ,'cay'  ,'Viet Nam'  ,5000)
insert into SANPHAM values('BB02','But bi'           ,'cay'  ,'Trung Quoc',7000)
insert into SANPHAM values('BB03','But bi'           ,'hop'  ,'Thai Lan'  ,100000)
insert into SANPHAM values('TV01','Tap 100 giay mong','quyen','Trung Quoc',2500)
insert into SANPHAM values('TV02','Tap 200 giay mong','quyen','Trung Quoc',4500)
insert into SANPHAM values('TV03','Tap 100 giay tot' ,'quyen','Viet Nam'  ,3000)
insert into SANPHAM values('TV04','Tap 100 giay tot' ,'quyen','Viet Nam'  ,5500)
insert into SANPHAM values('TV05','Tap 100 trang'    ,'chuc' ,'Viet Nam'  ,23000)
insert into SANPHAM values('TV06','Tap 200 trang'    ,'chuc' ,'Viet Nam'  ,53000)
insert into SANPHAM values('TV07','Tap 100 trang'    ,'chuc' ,'Trung Quoc',34000)
insert into SANPHAM values('ST01','So tay 500 trang' ,'quyen','Trung Quoc',40000)
insert into SANPHAM values('ST02','So tay loai 1'    ,'quyen','Viet Nam'  ,55000)
insert into SANPHAM values('ST03','So tay loai 2'    ,'quyen','Viet Nam'  ,51000)
insert into SANPHAM values('ST04','So tay'           ,'quyen','Thai Lan'  ,55000)
insert into SANPHAM values('ST05','So tay mong'      ,'quyen','Thai Lan'  ,20000)
insert into SANPHAM values('ST06','Phan viet bang'   ,'hop'  ,'Viet Nam'  ,5000)
insert into SANPHAM values('ST07','Phan khong bui'   ,'hop'  ,'Viet Nam'  ,7000)
insert into SANPHAM values('ST08','Bong bang'        ,'cai'  ,'Viet Nam'  ,1000)
insert into SANPHAM values('ST09','But long'         ,'cay'  ,'Viet Nam'  ,5000)
insert into SANPHAM values('ST10','But long'         ,'cay'  ,'Trung Quoc',7000)
--HOADON
insert into HOADON values('1001','23/7/2006' ,'KH01','NV01',320000)
insert into HOADON values('1002','12/8/2006' ,'KH01','NV02',840000)
insert into HOADON values('1003','23/8/2006' ,'KH02','NV01',100000)
insert into HOADON values('1004','1/9/2006'  ,'KH02','NV01',180000)
insert into HOADON values('1005','20/10/2006','KH01','NV02',3800000)
insert into HOADON values('1006','16/10/2006','KH01','NV03',2430000)
insert into HOADON values('1007','28/10/2006','KH03','NV03',510000)
insert into HOADON values('1008','28/10/2006','KH01','NV03',440000)
insert into HOADON values('1009','28/10/2006','KH03','NV04',200000)
insert into HOADON values('1010','1/11/2006' ,'KH01','NV01',5200000)
insert into HOADON values('1011','4/11/2006' ,'KH04','NV03',250000)
insert into HOADON values('1012','30/11/2006','KH05','NV03',21000)
insert into HOADON values('1013','12/12/2006','KH06','NV01',5000)
insert into HOADON values('1014','31/12/2006','KH03','NV02',3150000)
insert into HOADON values('1015','1/1/2007'  ,'KH06','NV01',910000)
insert into HOADON values('1016','1/1/2007'  ,'KH07','NV02',12500)
insert into HOADON values('1017','2/1/2007'  ,'KH08','NV03',35000)
insert into HOADON values('1018','13/1/2007' ,'KH08','NV03',330000)
insert into HOADON values('1019','13/1/2007' ,'KH01','NV03',30000)
insert into HOADON values('1020','14/1/2007' ,'KH09','NV04',70000)
insert into HOADON values('1021','16/1/2007' ,'KH10','NV03',67500)
insert into HOADON values('1022','16/1/2007' , NULL ,'NV03',7000)
insert into HOADON values('1023','17/1/2007' , NULL ,'NV01',330000)

-- CTHD
insert into CTHD values('1001','TV02',10)
insert into CTHD values('1001','ST01',5)
insert into CTHD values('1001','BC01',5)
insert into CTHD values('1001','BC02',10)
insert into CTHD values('1001','ST08',10)
insert into CTHD values('1002','BC04',20)
insert into CTHD values('1002','BB01',20)
insert into CTHD values('1002','BB02',20)
insert into CTHD values('1003','BB03',10)
insert into CTHD values('1004','TV01',20)
insert into CTHD values('1004','TV02',10)
insert into CTHD values('1004','TV03',10)
insert into CTHD values('1004','TV04',10)
insert into CTHD values('1005','TV05',50)
insert into CTHD values('1005','TV06',50)
insert into CTHD values('1005','TV07',20)
insert into CTHD values('1006','ST01',30)
insert into CTHD values('1006','ST02',10)
insert into CTHD values('1007','ST03',10)
insert into CTHD values('1008','ST04',8)
insert into CTHD values('1009','ST05',10)
insert into CTHD values('1010','TV07',50)
insert into CTHD values('1010','ST07',50)
insert into CTHD values('1010','ST08',100)
insert into CTHD values('1010','ST04',50)
insert into CTHD values('1010','TV03',100)
insert into CTHD values('1011','ST06',50)
insert into CTHD values('1012','ST07',3)
insert into CTHD values('1013','ST08',5)
insert into CTHD values('1014','BC02',80)
insert into CTHD values('1014','BB02',100)
insert into CTHD values('1014','BC04',60)
insert into CTHD values('1014','BB01',50)
insert into CTHD values('1015','BB02',30)
insert into CTHD values('1015','BB03',7)
insert into CTHD values('1016','TV01',5)
insert into CTHD values('1017','TV02',1)
insert into CTHD values('1017','TV03',1)
insert into CTHD values('1017','TV04',5)
insert into CTHD values('1018','ST04',6)
insert into CTHD values('1019','ST05',1)
insert into CTHD values('1019','ST06',2)
insert into CTHD values('1020','ST07',10)
insert into CTHD values('1021','ST08',5)
insert into CTHD values('1021','TV01',7)
insert into CTHD values('1021','TV02',10)
insert into CTHD values('1022','ST07',1)
insert into CTHD values('1023','ST04',6)

-- PHAN II: DML
-- Cau 2
select * 
into Sanpham1
from SANPHAM

select *
into Khachhang1
from KHACHHANG

Drop table Sanpham1
select *
from Sanpham1

-- Cau 3
Update Sanpham1 set GIA = GIA * 1.05
Where NUOCSX = 'Thai Lan'
-- Cau 4
Update Sanpham1 set GIA = GIA * 0.95
Where GIA < 10000 and NUOCSX = 'Trung Quoc'
-- Cau 5
Drop table Khachhang1
select *
from Khachhang1

Update Khachhang1 set LOAIKH = 'VIP'
Where ( NGDK < '1/1/2007' and DOANHSO > 10000000 )or (NGDK > '1/1/2007' and DOANHSO > 2000000)


-- Phan III: SQL
-- Cau 1:	In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất.
Select MASP,TENSP
From SANPHAM
where NUOCSX = 'Trung Quoc'

-- Cau 2:	In ra danh sách các sản phẩm (MASP, TENSP) có đơn vị tính là “cay”, ”quyen”.
Select MASP,TENSP
From SANPHAM
where DVT in('Cay','Quyen')

-- Cau 3:	In ra danh sách các sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu là “B” và kết thúc là “01”.
Select MASP,TENSP
From SANPHAM
where MASP like'B%01'

-- Cau 4:	In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến 40.000
Select MASP,TENSP
From SANPHAM
where NUOCSX = 'Trung Quoc' and GIA between 30000 and 40000

-- Cau 5:	In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” hoặc “Thai Lan” sản xuất có giá từ 30.000 đến 40.000
Select MASP,TENSP, NUOCSX,GIA
From SANPHAM
where NUOCSX in('Trung Quoc','Thai Lan') and GIA between 30000 and 40000

-- Cau 6:	In ra các số hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007.
Select SOHD, TRIGIA
From HOADON
Where NGHD in ('1/1/2007','2/1/2007')

-- Cau 7:	In ra các số hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắp xếp theo ngày (tăng dần) và trị giá của hóa đơn (giảm dần).
select SOHD,TRIGIA 
from HOADON 
where (month(NGHD)='1' and year(NGHD)='2007') 
order by NGHD asc,TRIGIA desc

-- Cau 8:	In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007.
Select HOADON.MAKH , HOTEN,NGHD
From HOADON,KHACHHANG
Where NGHD='1/1/2007'

-- Cau 9:In ra số hóa đơn, trị giá các hóa đơn do nhân viên có tên “Nguyen Van B” lập trong ngày 28/10/2006
Select SOHD,TRIGIA, NHANVIEN.MANV,NHANVIEN.HOTEN
From HOADON, NHANVIEN
where	HOADON.MANV = NHANVIEN.MANV and
		NHANVIEN.HOTEN = 'Nguyen Van B'

-- Cau 10:	In ra danh sách các sản phẩm (MASP,TENSP) được khách hàng có tên “Nguyen Van A” mua trong tháng 10/2006.
Select KHACHHANG.HOTEN,NGHD, MASP, TENSP
From SANPHAM, HOADON, KHACHHANG
Where  KHACHHANG.HOTEN='Nguyen Van A' and ( NGHD > '1/07/2006' and NGHD < '30/07/2006')

-- Cau 11:	Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”.
Select *
From CTHD
Where MASP= 'BB01' or MASP='BB02'

-- Cau 12:	Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”, mỗi sản phẩm mua với số lượng từ 10 đến 20.
Select *
From CTHD
Where (MASP= 'BB01' or MASP='BB02') and SL between 10 and 20

-- Cau 13:	Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”, mỗi sản phẩm mua với số lượng từ 10 đến 20.
-- cach 1
Select distinct SOHD
From CTHD 
Where (MASP='BB01' and SL between 10 and 20 ) and sohd IN (
	Select Distinct SOHD
	From CTHD 
	Where (MASP='BB02' and SL between 10 and 20 ))
	-- cach 2
select distinct SOHD
from CTHD 
where MASP='BB01' and SOHD IN
	(select distinct SOHD 
	from CTHD 
	where MASP='BB02') and
	SL between 10 and 20


-- Cau 14:	In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2007.
Select MASP, TENSP
From SANPHAM, HOADON
Where NUOCSX ='Trung Quoc' or HOADON.NGHD = '1/1/2007'

-- Cau 15:	In ra danh sách các sản phẩm (MASP,TENSP) không bán được.
select MASP, TENSP
from SANPHAM
where MASP not in (
	select MASP
	from CTHD
)
-- Kiem tra
select MASP
from CTHD
where MASP in ('BC03','ST09','ST10')

-- Cau 16:	In ra danh sách các sản phẩm (MASP,TENSP) không bán được trong năm 2006.
	-- Cach 1
select MASP, TENSP
from SANPHAM
where MASP not in(
	select distinct CTHD.MASP
	from CTHD inner join HOADON on CTHD.SOHD = HOADON.SOHD
	where   year(NGHD)=2006 )
	-- Cach 2
select MASP, TENSP
from SANPHAM
where MASP not in(
	select distinct CTHD.MASP
	from CTHD , HOADON  
	where CTHD.SOHD = HOADON.SOHD and year(NGHD)=2006 )

-- Cau 17:	In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất không bán được trong năm 2006.
select MASP, TENSP, NUOCSX
from SANPHAM
where  NUOCSX ='Trung Quoc'and  MASP not in(
	select distinct CTHD.MASP
	from CTHD inner join HOADON on CTHD.SOHD = HOADON.SOHD 
		inner join SANPHAM on CTHD.MASP = SANPHAM.MASP
	where NUOCSX='Trung Quoc' and year(NGHD)=2006 )

-- Cau 18:	Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất.
select SOHD
from HOADON HD
where  not exists (
	select *
	from SANPHAM SP
	where NUOCSX= 'singapore' and not exists( 
		select *
		from CTHD CT
		where CT.MASP = SP.MASP and CT.SOHD = HD.SOHD
))

-- Cau 19:

-- Cau 20: Có bao nhiêu hóa đơn không phải của khách hàng đăng ký thành viên mua?
select (
	(
		select count(*) 
		from HOADON
	)
	-
	(
		select count(*)
		from HOADON
		where MAKH like 'KH%')
	) as Khach_Le

-- Cau 21: Có bao nhiêu sản phẩm khác nhau được bán ra trong năm 2006.

select count (distinct MASP)
from CTHD

-- Cau 22: Cho biết trị giá hóa đơn cao nhất, thấp nhất là bao nhiêu ?
select max(TRIGIA) as Gia_Tri_Cao_Nhat, MIN(TRIGIA) as Gia_Tri_Thap_Nhat
from HOADON

-- Cau 23:	Trị giá trung bình của tất cả các hóa đơn được bán ra trong năm 2006 là bao nhiêu?
select AVG(TRIGIA) Trung_Binh
from HOADON
where year(NGHD) = '2006' 


-- Cau 24 :	Tính doanh thu bán hàng trong năm 2006
select sum(TRIGIA) Tong
from HOADON
where year(NGHD) = '2006'

-- Cau 25:	Tìm số hóa đơn có trị giá cao nhất trong năm 2006.
select Top 1 SOHD, TRIGIA
from HOADON
where year(NGHD) = '2006'
Order By TRIGIA DESC

-- Cau 26: Tìm họ tên khách hàng đã mua hóa đơn có trị giá cao nhất trong năm 2006.
select Top 1  HOTEN
from HOADON inner join KHACHHANG on HOADON.MAKH = KHACHHANG.MAKH
where year(NGHD) = '2006'
Order By TRIGIA DESC


-- Cau 27:	In ra danh sách 3 khách hàng (MAKH, HOTEN) có doanh số cao nhất.
-- 1. Tinh tong doanh so cua tung nguoi
-- 2. Lay ra 3 nguoi top

select top 3 HOTEN, sum(TRIGIA) as Tong_Doanh_So
from HOADON HD, KHACHHANG KH
where HD.MAKH = KH.MAKH
group by HOTEN
order by Tong_Doanh_So DESC

-- Cau 28
-- Cau 29
-- Cau 30
-- Cau 31

-- Cau 32: Tính tổng số sản phẩm do “Trung Quoc” sản xuất.
select count(*) SP_Khua
from SANPHAM
where NUOCSX='Trung Quoc'


-- Cau 33: Tính tổng số sản phẩm của từng nước sản xuất.
select NUOCSX, count(NUOCSX) as Tong_SP
from SANPHAM
group by NUOCSX

-- Cau 34: Với từng nước sản xuất, tìm giá bán cao nhất, thấp nhất, trung bình của các sản phẩm.
select NUOCSX, max(GIA) as Gia_Cao_Nhat, min(GIA) as Gia_Thap_Nhat, AVG(GIA) as Trung_Binh
from SANPHAM
group by  NUOCSX

-- Cau 35:Tính doanh thu bán hàng mỗi ngày.
select NGHD, sum(TRIGIA) as Tong
from HOADON
group by NGHD

-- Cau 36:	Tính tổng số lượng của từng sản phẩm bán ra trong tháng 10/2006.
-- Bang 1
select TENSP,sum(SL) as Tong
from CTHD CT, SANPHAM SP, HOADON HD
where	CT.MASP = SP.MASP and CT.SOHD = HD.SOHD
		 and year(NGHD)='2006' and month(NGHD)='10'
group by TENSP
-- Không phân biệt nước SX
-- Bang 2
select TENSP, SL, NUOCSX
from CTHD CT, SANPHAM SP, HOADON HD
where	CT.MASP = SP.MASP and CT.SOHD = HD.SOHD
		 and year(NGHD)='2006' and month(NGHD)='10'
group by  NUOCSX, SL, TENSP
-- Phân biệt Nước SX


-- Cau 37:	Tính doanh thu bán hàng của từng tháng trong năm 2006. (Chua lam ra :(()
select NGHD, sum(TRIGIA) as Tong
from HOADON
group by NGHD
-- Muốn sắp xếp theo tên thì để tên ở sau, còn muốn sắp xếp theo nước thì để nước ở sau

-- Cau 38:	Tìm hóa đơn có mua ít nhất 4 sản phẩm khác nhau
 Select * 
 From HOADON as HD, (
	Select count(SOHD) as So_SP, SOHD
	From CTHD 
	Group By SOHD) as CT 
 WHERE CT.SOHD = HD.SOHD AND CT.So_SP >= 4

 -- Cau 39:	Tìm hóa đơn có mua 3 sản phẩm do “Viet Nam” sản xuất (3 sản phẩm khác nhau).
 Select distinct HD.SOHD
 From HOADON as HD,SANPHAM as SP, CTHD as HDCT, (
	Select count(SOHD) as So_SP, SOHD
	From CTHD 
	Group By SOHD) as CT 
 WHERE	CT.SOHD = HD.SOHD AND 
		HDCT.SOHD = HD.SOHD and
		SP.MASP = HDCT.MASP and
		SP.NUOCSX = 'Viet Nam' and
		CT.So_SP = 3

-- Cau 40: Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều nhất. 
select top 1 HD.MAKH,HOTEN, count(HD.MAKH) as SO_LAN_MUA
from   HOADON HD, KHACHHANG KH
where HD.MAKH = KH.MAKH
group by HD.MAKH, HOTEN
order by SO_LAN_MUA DESC

-- Cau 41:	Tháng mấy trong năm 2006, doanh số bán hàng cao nhất ?


-- Cau 42: 	Tìm sản phẩm (MASP, TENSP) có tổng số lượng bán ra thấp nhất trong năm 2006.
select Top 1 MASP,NGHD, sum(SL) as So_Luong_Ban
from CTHD, HOADON
where	CTHD.SOHD = HOADON.SOHD and
		year(NGHD)='2006'
group by MASP, NGHD
order by So_Luong_Ban ASC

-- Cau 43: Mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao nhất.
select  SP.NUOCSX, SP.MASP, TENSP,SP1.Gia_Cao_Nhat
from SANPHAM SP, (
	select NUOCSX, max(GIA) as Gia_Cao_Nhat
	from SANPHAM
	group by NUOCSX ) as SP1
where SP.GIA= SP1.Gia_Cao_Nhat and SP.NUOCSX = SP1.NUOCSX

-- Cau 44:	Tìm nước sản xuất sản xuất ít nhất 3 sản phẩm có giá bán khác nhau.
select distinct SP1.NUOCSX
from SANPHAM SP1, (
	select  SP.NUOCSX
	from SANPHAM SP,
		(
			select NUOCSX, count(MASP) as So_SP
			from SANPHAM
			group by NUOCSX
		) as DEMSP
	where SP.NUOCSX = DEMSP.NUOCSX and DEMSP.So_SP > 3 ) as SPALL
where SP1.NUOCSX= SPALL.NUOCSX

-- Cau 45:Trong 10 khách hàng có doanh số cao nhất, tìm khách hàng có số lần mua hàng nhiều nhất.
select  top 1 MAKH, count(MAKH) as So_Lan_Mua
from HOADON
group by MAKH
order by So_Lan_Mua DESC


select * 
from SANPHAM
 order by NUOCSX




select *	from KHACHHANG
select *	from NHANVIEN
select *	from SANPHAM
select *	from HOADON
select *	from CTHD